Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Storage AutoYaST backward compatibility #1284

Merged
merged 15 commits into from
Jun 6, 2024

Conversation

ancorgs
Copy link
Contributor

@ancorgs ancorgs commented Jun 4, 2024

Created to replace #1266 (to sanitize history).

Agama is going to offer new settings for configuring the storage devices, see #1256. That new settings will be applied by loading a config file (e.g., $ agama config load myconfig.json). Nevertheless, Agama is also going to temporary support the SLE15 AutoYaST schema to some extent, in order to make the transition smoother. For that, the json config file can indicate a "legacyAutoyastStorage" key equivalent to the partitioning section of the AutoYaST profile:

"legacyAutoyastStorage": [
  {
    "device": "/dev/vda",
    "use": "all",
    "partitions": [...]
  }
]

This PR implements the support for the "legacyAutoyastStorage" settings, making possible to calculate an AutoYaST proposal.

Converting the "partitioning" section from a XML AutoYaST profile to a "legacyAutoyastStorage" section is implemented at #1285

Note: The AutoYaST guided partitioning will not be supported, see https://doc.opensuse.org/projects/autoyast/#CreateProfile-Guided-Partitioning.

@coveralls
Copy link

Coverage Status

coverage: 70.419% (+0.1%) from 70.281%
when pulling aad870e on ancorgs:legacy_autoyast_storage
into e2c7a5a on openSUSE:master.

@ancorgs ancorgs marked this pull request as ready for review June 4, 2024 14:05
@coveralls
Copy link

Coverage Status

coverage: 70.241% (-0.04%) from 70.281%
when pulling aad870e on ancorgs:legacy_autoyast_storage
into e2c7a5a on openSUSE:master.

joseivanlopez added a commit that referenced this pull request Jun 5, 2024
The list of drives in the "partitioning" section of an AutoYaST profile
is directly converted to json as "legacyAutoyastStorage" key.

See:

* #1279
* #1284

~~~
$ ./service/bin/agama-autoyast file:///path/to/profile.xml /tmp
$ cat /tmp/autoinst.json | jq

{
  "legacyAutoyastStorage": [
    {
      "device": "/dev/sda",
      "disklabel": "gpt",
      "enable_snapshots": true,
      "initialize": true,
      "partitions": [
        {
          "create": true,
          "partition_id": 263,
          "partition_nr": 1,
          "resize": false,
          "size": "8225280"
        }
      ],
      "type": "CT_DISK",
      "use": "all"
  ]
}
~~~

Note: Agama CLI complains when using `file://`:

~~~
$ agama profile autoyast file:///path/to/profile.xml
No such file or directory (os error 2)
~~~
Copy link
Contributor

@imobachgs imobachgs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

rust/agama-lib/src/storage/autoyast/store.rs Outdated Show resolved Hide resolved
@@ -176,7 +177,7 @@ fn expand_merge_fn(settings: &SettingFieldsList) -> TokenStream2 {
let arms = settings.all().iter().map(|s| {
let field_name = &s.ident;
match s.kind {
SettingKind::Scalar => quote! {
SettingKind::Scalar | SettingKind::Ignored => quote! {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sadly, this code will go away in a matter of hours or days 😅 (we are dropping agama-derive and agama-settings).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ces't la vie.

rust/agama-lib/src/install_settings.rs Outdated Show resolved Hide resolved
rust/agama-lib/src/store.rs Outdated Show resolved Hide resolved
when DeviceSettings::NewLvmVg
settings.device.candidate_pv_devices = [device]
when DeviceSettings::ReusedLvmVg
# TODO: select an existing VG?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this something to fix now?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. We have not yet implemented reusing LVMs.

@coveralls
Copy link

Coverage Status

coverage: 70.48% (+0.1%) from 70.343%
when pulling 5e9794d on ancorgs:legacy_autoyast_storage
into 8bebd79 on openSUSE:master.

@coveralls
Copy link

Coverage Status

coverage: 70.302% (-0.04%) from 70.343%
when pulling 5e9794d on ancorgs:legacy_autoyast_storage
into 8bebd79 on openSUSE:master.

@ancorgs ancorgs merged commit df46717 into agama-project:master Jun 6, 2024
5 checks passed
@imobachgs imobachgs mentioned this pull request Jun 27, 2024
imobachgs added a commit that referenced this pull request Jun 27, 2024
Prepare for releasing Agama 9. It includes the following pull requests:

- #1101
- #1202
- #1228
- #1231
- #1236
- #1238
- #1239
- #1240
- #1242
- #1243
- #1244
- #1245
- #1246
- #1247
- #1248
- #1249
- #1250
- #1251
- #1252
- #1253
- #1254
- #1255
- #1256
- #1257
- #1258
- #1259
- #1260
- #1261
- #1264
- #1265
- #1267
- #1268
- #1269
- #1270
- #1271
- #1272
- #1273
- #1274
- #1279
- #1280
- #1284
- #1285
- #1286
- #1287
- #1288
- #1289
- #1290
- #1291
- #1292
- #1293
- #1294
- #1295
- #1296
- #1298
- #1299
- #1300
- #1301
- #1302
- #1303
- #1304
- #1305
- #1306
- #1307
- #1308
- #1309
- #1310
- #1311
- #1312
- #1313
- #1314
- #1315
- #1316
- #1317
- #1318
- #1319
- #1320
- #1321
- #1322
- #1323
- #1324
- #1325
- #1326
- #1328
- #1329
- #1331
- #1332
- #1334
- #1338
- #1340
- #1341
- #1342
- #1343
- #1344
- #1345
- #1348
- #1349
- #1351
- #1352
- #1353
- #1354
- #1355
- #1356
- #1357
- #1358
- #1359
- #1360
- #1361
- #1362
- #1363
- #1365
- #1366
- #1367
- #1368
- #1371
- #1372
- #1374
- #1375
- #1376
- #1379
- #1380
- #1381
- #1383
- #1384
- #1385
- #1386
- #1387
- #1388
- #1389
- #1391
- #1392
- #1394
- #1395
- #1397
- #1398
- #1399
- #1400
- #1403
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants